Next: Editing and debugging formulas, Previous: Column formulas, Up: The spreadsheet [Contents][Index]
Org has three predefined Emacs Lisp functions for lookups in tables.
(org-lookup-first VAL S-LIST R-LIST &optional
PREDICATE)Searches for the first element S in list
S-LIST for which
(PREDICATE VAL S)
is t; returns the value from the
corresponding position in list R-LIST. The
default PREDICATE is equal. Note
that the parameters VAL and S are
passed to PREDICATE in the same order as the
corresponding parameters are in the call to
org-lookup-first, where VAL
precedes S-LIST. If R-LIST is
nil, the matching element S of
S-LIST is returned.
(org-lookup-last VAL S-LIST R-LIST &optional
PREDICATE)Similar to org-lookup-first above, but
searches for the last element for which
PREDICATE is t.
(org-lookup-all VAL S-LIST R-LIST &optional
PREDICATE)Similar to org-lookup-first, but searches for
all elements for which PREDICATE is
t, and returns all corresponding values.
This function can not be used by itself in a formula, because
it returns a list of values. However, powerful lookups can be
built when this function is combined with other Emacs Lisp
functions.
If the ranges used in these functions contain empty fields,
the E mode for the formula should usually be
specified: otherwise empty fields will not be included in
S-LIST and/or R-LIST which can, for
example, result in an incorrect mapping from an element of
S-LIST to the corresponding element of
R-LIST.
These three functions can be used to implement associative arrays, count matching cells, rank results, group data etc. For practical examples see this tutorial on Worg.
Next: Editing and debugging formulas, Previous: Column formulas, Up: The spreadsheet [Contents][Index]